#include<stdio.h>
#include <string.h>
//将输入的人名（英文）进行冒泡排序
#define N 5  //人数

//将name加入 p_name
void vote(char *name,char (*p_name)[50])
{
   strcpy(p_name,name);//将输入的名字加入后面
}

void sort(char (*p_name)[50]);//排序
void show(char (*p_name)[50]);//显示
int main (int argc,char argv[])
{
    char p_name[N][50];
    int num[N]={0};//统计票数
    char name[20]={'\0'};
    int i=0;//当前入围总人数
    while(i<N)
    {
        printf("请投票：");
        gets(name);//读入一串字符
        vote(name,p_name+i);//将输入的名字加入 总名单
      i++;
    }   
     sort(p_name);//排序
     show(p_name);//二维数组
    return 0;
}


//排序  n:入围的人数
void sort(char (*p_name)[50])
{
    int i,j;
    for(i=0;i<N-1;i++)
    {
        for(j=0;j<N-i-1;j++)
        {
            if(strcmp(p_name[j],p_name[j+1])>0)//按照字母顺序排列
            {
                //交换  strcpy函数  交换票数
                //交换p_name[j],p_name[j+1]
                char temp[50];
                strcpy(temp,p_name[j]);
                  strcpy(p_name[j],p_name[j+1]);
                    strcpy(p_name[j+1],temp);
            }
        }
    }
}
//打印排序情况情况
void show(char (*p_name)[50])//用一个指针数组指向了 二维数组
{
    for(int i=0;i<N;i++)
    {
        printf("%s\n",p_name[i]);
    }
}